#ifndef EXCELDAO_H
#define EXCELDAO_H

#include <iostream>
#include <map>
#include <vector>

class QString;
class QVariant;

typedef std::vector< QVariant > Datas_List_Item_List;
typedef std::vector< Datas_List_Item_List > Datas_List;

class ExcelDao
{
public:

    /*************************************************
    将数据保存为Excel
    @save_excel_full_dir_path 保存的目录路径，如果路径不存在则会自动创建，如果该路径下已经有这个excel就是删除重新创建
    @Save_excel_name    保存的excel文件名.不包含注释
    @datas_list   Excel中存储的数据 list[0] 可以为列标题
    return 存储后的完整路径，包括文件后面的后缀名
    *************************************************/
    static QString ExportToExcel(QString save_excel_full_dir_path, QString save_excel_name, Datas_List datas_list);


    /*************************************************
    将数据保存为Excel
    @save_excel_full_path 将要读取的excel完整绝对路径。excel类型限定：*.xlsx
    @is_include_title   Excel中是否包含头部标题, 如果true则datas_list[0]就是数据抬头 ,datas_list[1] 开始才是存储数据
    return Excel中存储的数据
    *************************************************/
    static Datas_List ImportFromExcel(QString excel_full_path);


private:
    static void CreateEmptyDir(QString dir_path);
    static void DelDir(QString dir_path);

private:
    ExcelDao(){}
    ~ExcelDao(){}
};

#endif // EXCELDAO_H
